package com.viajero.movil.dbviajero;

import com.viajero.movil.dominio.Departamento;
import com.viajero.movil.dominio.Hotel;

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class HotelDat {


	SQLiteDatabase ViajeroDB;
	String[] allColumns = new String[]{
			ViajeroSQLiteHelper.HOTEL_id_hotel,
			ViajeroSQLiteHelper.HOTEL_nombre,
			ViajeroSQLiteHelper.HOTEL_tarifa,
			ViajeroSQLiteHelper.HOTEL_estrellas,
			ViajeroSQLiteHelper.HOTEL_latitud,
			ViajeroSQLiteHelper.HOTEL_longitud,
			ViajeroSQLiteHelper.HOTEL_id_distrito,
			ViajeroSQLiteHelper.HOTEL_id_departamento};
	
	public HotelDat(){
		
	}
	
	public Hotel[] cargarHoteles(ViajeroSQLiteHelper vdb,String[] busc ){
		Hotel[] hotel = {};
		try{
			ViajeroDB = vdb.getReadableDatabase();
			//Cursor cursor = ViajeroDB.query(vdb.TABLE_HOTEL, allColumns, "id_distrito = "+vdb.TABLE_DISTRITO+".id_distrito and "+vdb.TABLE_DISTRITO+".id_departamento = "+depa, null, null, null, null);
			Cursor cursor = ViajeroDB.query(vdb.TABLE_HOTEL, allColumns, vdb.HOTEL_id_departamento +" = ? and "+vdb.HOTEL_estrellas+" = ? and "+vdb.HOTEL_tarifa+" <= ?",busc, vdb.HOTEL_tarifa, null, null);
			cursor.moveToFirst();
			if(cursor.getCount()==0){
				ViajeroDB.close();
				throw new Exception();
			}
			hotel = new Hotel[cursor.getCount()];
			int ind1 = cursor.getColumnIndex(vdb.HOTEL_id_hotel);
			int ind2 = cursor.getColumnIndex(vdb.HOTEL_nombre);
			int ind3 = cursor.getColumnIndex(vdb.HOTEL_tarifa);
			int ind4 = cursor.getColumnIndex(vdb.HOTEL_estrellas);
			int ind5 = cursor.getColumnIndex(vdb.HOTEL_latitud);
			int ind6 = cursor.getColumnIndex(vdb.HOTEL_longitud);
			int ind7 = cursor.getColumnIndex(vdb.HOTEL_id_distrito);
			int ind8 = cursor.getColumnIndex(vdb.HOTEL_id_departamento);
			int i = 0;
			while(!cursor.isAfterLast()){
				hotel[i]=new Hotel();
				hotel[i].setId_Hotel(cursor.getInt(ind1));
				hotel[i].setNombre(cursor.getString(ind2));
				hotel[i].setTarifa(cursor.getDouble(ind3));
				hotel[i].setEstrellas(cursor.getFloat(ind4));
				hotel[i].setLatitud(cursor.getDouble(ind5));
				hotel[i].setLongitud(cursor.getDouble(ind6));
				hotel[i].setId_distrito(cursor.getInt(ind7));
				hotel[i].setId_departamento(cursor.getInt(ind8));
				i++;
				cursor.moveToNext();
			}
			ViajeroDB.close();
		}catch (Exception e) {
			return null;
		}
		return hotel;
	}
	
	public Hotel[] cargarHoteles(ViajeroSQLiteHelper vdb){
		Hotel[] hotel = {};
		try{
			ViajeroDB = vdb.getReadableDatabase();
			//Cursor cursor = ViajeroDB.query(vdb.TABLE_HOTEL, allColumns, "id_distrito = "+vdb.TABLE_DISTRITO+".id_distrito and "+vdb.TABLE_DISTRITO+".id_departamento = "+depa, null, null, null, null);
			Cursor cursor = ViajeroDB.query(vdb.TABLE_HOTEL, allColumns,null,null, vdb.HOTEL_tarifa, null, null);
			cursor.moveToFirst();
			if(cursor.getCount()==0){
				ViajeroDB.close();
				throw new Exception();
			}
			hotel = new Hotel[cursor.getCount()];
			int ind1 = cursor.getColumnIndex(vdb.HOTEL_id_hotel);
			int ind2 = cursor.getColumnIndex(vdb.HOTEL_nombre);
			int ind3 = cursor.getColumnIndex(vdb.HOTEL_tarifa);
			int ind4 = cursor.getColumnIndex(vdb.HOTEL_estrellas);
			int ind5 = cursor.getColumnIndex(vdb.HOTEL_latitud);
			int ind6 = cursor.getColumnIndex(vdb.HOTEL_longitud);
			int ind7 = cursor.getColumnIndex(vdb.HOTEL_id_distrito);
			int ind8 = cursor.getColumnIndex(vdb.HOTEL_id_departamento);
			int i = 0;
			while(!cursor.isAfterLast()){
				hotel[i]=new Hotel();
				hotel[i].setId_Hotel(cursor.getInt(ind1));
				hotel[i].setNombre(cursor.getString(ind2));
				hotel[i].setTarifa(cursor.getDouble(ind3));
				hotel[i].setEstrellas(cursor.getFloat(ind4));
				hotel[i].setLatitud(cursor.getDouble(ind5));
				hotel[i].setLongitud(cursor.getDouble(ind6));
				hotel[i].setId_distrito(cursor.getInt(ind7));
				hotel[i].setId_departamento(cursor.getInt(ind8));
				i++;
				cursor.moveToNext();
			}
			ViajeroDB.close();
		}catch (Exception e) {
			return null;
		}
		return hotel;
	}
	
}
